package com.hnucm.cooklife.contract.user;

import com.hnucm.cooklife.base.IBaseView;
import com.hnucm.cooklife.bean.db.User;
import com.hnucm.cooklife.bean.me.DishColl;

import java.util.List;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;

public class Contract {
    public interface IUserModel{
        Observable<User> loadUser(int userId);
        Observable<User> uploadUser(int userId);

        Observable<User> updateBg(MultipartBody.Part bg, int userId);
        Observable<User> updateIcon(MultipartBody.Part icon, int userId);

        Observable<List<DishColl>> loadRealMyDish(int userid);
        Observable<List<DishColl>> refreshRealMyDish(int userid);

    }

    public interface IUserView extends IBaseView{
        void onLoadUser(User user);
        void onRefreshUser(User user);

        void onLoadRealMyDish(List<DishColl> dishCollList);
        void onRefreshRealMyDish(List<DishColl> dishCollList);

    }

    public interface IUserPresenter{
        void loadUser(int userId);
        void refreshUser(int userId);
        void updateBg(MultipartBody.Part bg,int userId);
        void updateIcon(MultipartBody.Part icon,int userId);


        void loadRealMyDish(int userid);
        void refreshRealMyDish(int userid);
    }
}
